package org.sunriz.utils;

import java.io.File;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.List;

import org.apache.commons.io.FileUtils;

public class FolderUtil {
    /**
     * 获取指定文件夹下所有的txt文件
     * @return 文件列表 
     */
    public static List<File> getFileList() {

        String pathName = Constant.RESOURCES_DIR;
        File folder = new File(pathName);
        if (!folder.exists() || !folder.isDirectory()) {
            System.out.println("指定路径不是有效的文件夹: " + pathName);
            return null;
        }

        // 创建返回对象
        List<File> fileNameList = new java.util.ArrayList<>();

        // 获取所有的txt文件
        Collection<File> txtFiles = FileUtils.listFiles(folder, new String[]{"txt"}, false);
        for (File file : txtFiles) {
            try {
                fileNameList.add(file);
//                System.out.println("获取到文件: " + file.getName());
            
            } catch (Exception e) {
//                System.out.println("处理文件失败: " + file.getName());
                e.printStackTrace();
            }
        }
        return fileNameList;
    }
    

    
    /**
     * 创建/获取备文件夹
     * @return 备份文件夹路径
     */
    public static Path getFilePath(){
        String backupBaseDir = Constant.BACKUP_BASE_DIR;

        // 创建日期+时间格式的文件夹名
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HH_mm");
        String timestamp = sdf.format(new java.util.Date());

        // 在基础备份目录下创建日期时间子目录
        Path outputDir = Paths.get(backupBaseDir, timestamp);

        try {
            // 确保基础备份目录存在
            if (!new File(backupBaseDir).exists()) {
                new File(backupBaseDir).mkdirs();
            }
            // 确保日期时间子目录存在
            if (!outputDir.toFile().exists()) {
                outputDir.toFile().mkdirs();
            }

            // 修改点：直接使用文件名作为相对路径（去掉原始目录结构）
            String relativePath = ""; // 只保留文件名

            Path targetPath = outputDir.resolve(relativePath);
            return targetPath;
        } catch (Exception e) {
            throw new RuntimeException("创建目录失败: " + e.getMessage(), e);
        }
    }






} 